/**
 * 
 */
package orgx.wxyz.util;

/**
 * <p>
 * 对象工具
 * </p>
 * @author zxwang
 * @date 2013-6-18 下午9:08:38
 */
public final class ObjectUtil {
	
	/**
	 * <p>
	 * 判断给定的两个对象是否相等，两个对象相等满足如下条件：<br>
	 * <b>1. 自反性reflexive：</b>任何非空引用x，x.equals(x)返回为true；<br>
	 * <b>2. 对称性symmetric：</b>任何非空引用x和y，x.equals(y)返回true当且仅当y.equals(x)返回true；<br>
	 * <b>3. 传递性transitive：</b>任何非空引用x和y，如果x.equals(y)返回true，并且y.equals(z)返回true，那么x.equals(z)返回true；<br>
	 * <b>4. 一致性consistent：</b>两个非空引用x和y，x.equals(y)的多次调用应该保持一致的结果，（前提条件是在多次比较之间没有修改x和y用于比较的相关信息）；<br>
	 * <b>5. 对于所有非null的值x， x.equals(null)都要返回false。</b> (如果你要用null.equals(x)也可以，会报NullPointerException)。
	 * </p>
	 * @param obj1 对象1
	 * @param obj2 对象2
	 * @return 相等，在返回true，否则，返回false
	 */
	public static boolean equal(Object obj1, Object obj2) {
		if (null == obj1) {
			if (null == obj2) {
				return true;
			}
			else {
				return false;
			}
		}
		
		if (obj1 == obj2) {
			return true;
		}
		
		if (obj1.equals(obj2)) {
			return true;
		}

		return false;
	}
}
